package com.hrzyit.whistle.cases.injection.component

import com.hrzyit.base.injection.PreComponentScope
import com.hrzyit.base.injection.component.ActivityComponent
import com.hrzyit.whistle.cases.injection.module.CaseCenterModule
import com.hrzyit.whistle.cases.injection.module.CaseTypeModule
import com.hrzyit.whistle.cases.injection.module.UploadModule
import com.hrzyit.whistle.cases.ui.activity.*
import com.hrzyit.whistle.cases.ui.fragment.*
import dagger.Component

/**
 * 案件管理服务模块 Component，用来管理模块下使用 Dagger2 依赖注入的Activity
 * @author YangWei
 * @date 2019/3/31
 */
@PreComponentScope
@Component(
    dependencies = [ActivityComponent::class],
    modules = [CaseCenterModule::class,
        CaseTypeModule::class,
        UploadModule::class]
)
interface CaseCenterComponent {

    /**
     * 依赖注入: 案件进度信息界面
     */
    fun inject(activity:CaseTimeLineActivity)


    /**
     * 依赖注入: 吹哨单位-人员选择界面
     */
    fun inject(fragment: SelectDeptAndUserForWhistleFragment)

    /**
     * 依赖注入：吹哨-单位选择界面
     */
    fun inject(fragment: IndexDeptWhistleFragment)

    /**
     * 依赖注入：吹哨-人员选择界面
     */
    fun inject(fragment: IndexUserWhistleFragment)

    /**
     * 依赖注入：批转-单位选择界面
     */
    fun inject(fragment: IndexDeptTransferFragment)

    /**
     * 依赖注入：批转-人员选择界面
     */
    fun inject(fragment: IndexUserTransferFragment)

    /**
     * 依赖注入: 批示单位-人员选择界面
     */
    fun inject(fragment: SelectDeptAndUserForApproveFragment)

    /**
     * 依赖注入: 派遣人选择界面
     */
    fun inject(activity: SelectDeptUserActivity)

    /**
     * 依赖注入: 批转单位选择界面
     */
    fun inject(activity: TransferSelectDeptActivity)

    /**
     * 依赖注入: 案件汇总界面
     */
    fun inject(activity: SummaryCaseActivity)

    /**
     * 依赖注入: 新建案件界面
     */
    fun inject(activity: RegisterCaseActivity)

    /**
     * 依赖注入: 网格案件界面
     */
    fun inject(activity: PatrolCaseActivity)
    /**
     * 依赖注入: 12345案件界面
     */
    /**
     * 依赖注入: 批转案件界面
     */
    /**
     * 依赖注入: 吹哨案件界面
     */
    /**
     * 依赖注入: 超时案件界面
     */
    /**
     * 依赖注入: 申请案件界面
     */
    /**
     * 依赖注入: 延期案件界面
     */
}